"""
Ontology中ObjectProperty和DataProperty的枚举类，实现由 display name -> IRI 的映射
@Time: 2020/10/23 22:18
@Author:
@File: propertyIRI.py
"""


from enum import Enum, unique
from .rdf_prefix import ifa


@unique
class BasePropertyIRI(Enum):
    """
    PropertyIRI 枚举类的基类，其子类包含 ObjectPropertyIRI 和 DataPropertyIRI
    name 为该 property 的 display name， value 为包装了该 property IRI 的 URIRef 对象
    """
    pass



class ObjectPropertyIRI(BasePropertyIRI):
    """
    本体中所有Object properties的枚举
    name 为该 property 的 display name， value 为包装了该 property IRI 的 URIRef 对象
    """
    brandAgencyObjectProperty = ifa.brandAgencyObjectProperty
    subordinateTo = ifa.subordinateTo   # 从属于


class DataPropertyIPI(BasePropertyIRI):
    """
    本体中所有Data properties的枚举
    name 为该 property 的 display name， value 为包装了该 property IRI 的 URIRef 对象
    """
    brandAgencyDataProperty = ifa.brandAgencyDataProperty
    createTime = ifa.createTime
    enName = ifa.enName


if __name__ == '__main__':
    print(type(ObjectPropertyIRI.brandAgencyObjectProperty.name))